<?php

namespace UserAjax\Form;

use Zend\InputFilter\InputFilter;

class FilterFormRegister extends InputFilter {

    public function __construct() {

        $this->add(array(
            'name' => 'member_email',
            'required' => true,
            'filters' => array(
                array('name' => 'stringtrim'),
                array('name' => 'striptags')
            ),
            'validators' => array(
                array(
                    'name' => 'notempty',
                    'break_chain_on_failure' => true,
                    'options' => array(
                        'messages' => array(
                            \Zend\Validator\NotEmpty::IS_EMPTY => 'Bạn chưa nhập Email'
                        )
                    )
                ),
                array(
                    'name' => 'emailaddress',
                    'break_chain_on_failure' => true,
                    'options' => array(
                        'messages' => array(
                            \Zend\Validator\EmailAddress::INVALID_FORMAT => 'Email không đúng',
                            \Zend\Validator\EmailAddress::INVALID => 'Email không đúng',
                            \Zend\Validator\EmailAddress::INVALID_HOSTNAME => 'Email không đúng',
                            \Zend\Validator\EmailAddress::DOT_ATOM => 'Email không đúng',
                            \Zend\Validator\EmailAddress::QUOTED_STRING => 'Email không đúng',
                            \Zend\Validator\EmailAddress::INVALID_LOCAL_PART => 'Email không đúng',
                            \Zend\Validator\Hostname::INVALID_HOSTNAME => 'Email không đúng',
                            \Zend\Validator\Hostname::LOCAL_NAME_NOT_ALLOWED => 'Email không đúng',
                            \Zend\Validator\Hostname::UNDECIPHERABLE_TLD => 'Email không đúng',
                            \Zend\Validator\Hostname::UNKNOWN_TLD => 'Email không đúng',
                            \Zend\Validator\Hostname::INVALID_LOCAL_NAME => 'Email không đúng'
                        )
                    )
                )
            )
        ));

        $this->add(array(
            'name' => 'member_password',
            'required' => true,
            'validators' => array(
                array(
                    'name' => 'notempty',
                    'break_chain_on_failure' => true,
                    'options' => array(
                        'messages' => array(
                            \Zend\Validator\NotEmpty::IS_EMPTY => 'Bạn chưa nhập mật khẩu'
                        )
                    )
                ),
                array(
                    'name' => 'stringlength',
                    'options' => array(
                        'min' => 8,
                        'messages' => array(
                            \Zend\Validator\StringLength::TOO_SHORT => 'Mật khẩu ít nhất 8 ký tự'
                        )
                    )
                )
            )
        ));

        $this->add(array(
            'name' => 'retype_password',
            'required' => true,
            'validators' => array(
                array(
                    'name' => 'notempty',
                    'break_chain_on_failure' => true,
                    'options' => array(
                        'messages' => array(
                            \Zend\Validator\NotEmpty::IS_EMPTY => 'Bạn chưa nhập lại mật khẩu'
                        )
                    )
                ),
                array(
                    'name' => 'identical',
                    'break_chain_on_failure' => true,
                    'options' => array(
                        'token' => 'member_password',
                        'messages' => array(
                            \Zend\Validator\Identical::NOT_SAME => 'Mật khẩu nhập lại không khớp'
                        )
                    )
                )
            )
        ));
    }

}
